
let packageName
let textMoren
let textSX
let textRList = []

function hongShu (){
    packageName = "com.xingin.xhs"; // 视频App的包名

  // // 打开视频App
  launch(packageName);
  toast('打开小红书')
  
  // App加载完成
  waitForPackage(packageName);
  toast('加载完成')
  sleep(8000)
  
  // 点击消息
  console.log('查找消息');
  const xx = className("android.view.ViewGroup").depth("10").drawingOrder("5").findOne(5000)
  if(xx){
    xx.click()
  }else{
    toast('没找到消息,如有弹窗,请先关闭弹窗')
    global.robotThread && global.robotThread.interrupt()
    toast('停止')
    // global.jsCall('isStart=false')
  }
  sleep(random(1000,3000))
  console.log('点击消息');
  
  // 循环查找新消息
      const center = className("android.widget.FrameLayout").depth("1").findOne()
     swipe(center.bounds().centerX(),center.bounds().centerY(),center.bounds().centerX(),center.bounds().centerY() + 500,500)
     sleep(random(2000,3000))
      // 消息
      msg()
      // 关注
      follow()
      console.log('关注执行完毕');
      // 评论
      review1()
      console.log('评论执行完毕');
      back()
    //   截流
    // XHSRiver()
}
function weChat () {
packageName = "com.tencent.mm"; // 视频App的包名

// 打开视频App
launch(packageName);
toast('打开微信')

// App加载完成
waitForPackage(packageName);
toast('加载完成')
sleep(8000)


const spPage = className("android.widget.TextView").text("发表视频").findOne(2000)
if(spPage){

}else{
    //打开发现
    const faxian = id("icon_tv").className("android.widget.TextView").text("发现").findOne(5000)
    if(faxian){
        faxian.parent().parent().click()
    }else{
        toast('请先登陆微信并打开首页')
        global.robotThread && global.robotThread.interrupt()
        toast('停止')
        global.jsCall('isStart=false')
    }
    sleep(6000)

    //点击视频号

    var title =id("cgi").untilFind()
    if(title){
      console.log('找到了');
      console.log(title[1].bounds().centerX());
      click(title[1].bounds().centerX(),title[1].bounds().centerY())
    }else{
      console.log('没找到');
      global.robotThread && global.robotThread.interrupt()
        toast('停止')
    }
    toast('打开视频号')
    sleep(10000)

    //点击个人
    const ktr = id("ktr").findOne(5000)
    if(ktr){
      ktr.click()
      toast('打开个人')
      sleep(5000)
    }else{
      toast('没找到个人')
      back()
      sleep(2000)
      id("ktr").findOne(5000).click()
    }
}


//循环查找是否有新消息（评论 点赞 私信）

  id("mle").findOne().click()
  toast('打开私信')
  sleep(1000)
  console.log('打招呼');
  greet()
  console.log('私信');
  six()
  sleep(1000)
  idEndsWith("jtp").findOne().click()
  toast('打开消息')
  // 点赞回复操作
  message()
  // 私信回复操作
  review()
  back()
  sleep(1000)
}
function douYin(){
    packageName = 'com.ss.android.ugc.aweme'
    // 打开视频App
    launch(packageName);
    toast('打开抖音')

    // App加载完成
    sleep(8000)

    // 点击消息
    if(text("以后再说").className("android.widget.TextView").depth("7").drawingOrder("1").findOne(2000)){
        text("以后再说").className("android.widget.TextView").depth("7").drawingOrder("1").click() 
    }
    const xx = className("android.widget.TextView").text("消息").findOne(2000)
    if(xx){
        log('找到消息')
        click(xx.bounds().centerX(),xx.bounds().centerY())
    }else{
        toastLog('没找到消息');
        toastLog('如有弹窗请先关闭弹窗，然后重启脚本');
        global.robotThread && global.robotThread.interrupt()
    }
    sleep(random(1000,3000))
    // 自动回复评论
    reviewDY()
    console.log('自动回复执行完毕');
    sleep(random(1000,3000))
    findMsg()
    // 退出抖音

}
function kuaiShou(){
    packageName = 'com.smile.gifmaker'
    launch(packageName);
    toast('打开快手')
    // App加载完成
    console.log('打开快手');
    waitForPackage(packageName);
    console.log('加载完成');
    toast('加载完成')
    sleep(8000)

    // 点击消息
    let xxKS = className("androidx.appcompat.app.ActionBar$c").desc("消息").findOne(3000)
    if(!xxKS){
        toastLog('没有消息')
        back()
        xxKS = className("androidx.appcompat.app.ActionBar$c").desc("消息").findOne(3000)
        if(!xxKS){
            toastLog('没有消息')
            global.robotThread && global.robotThread.interrupt()
        }
    }
    xxKS.click()

    const readPopup = className("android.widget.TextView").depth("13").drawingOrder("4").text("私信支持已读状态").findOne(2000)
    if(readPopup){
        className("android.view.ViewGroup").depth("13").drawingOrder("3").findOne(2000).click()
    }else{
        console.log('没找到');
    }
    sleep(random(1000,3000))
    // 查找新消息
    findNewMsgKS()
    // 评论回复
    sleep(random(1000,3000))
    xxKS.click()
    commentKS()
    back()
}
try {
while(true){
        getText()
        // 如果勾选了抖音则执行
        if(global.WEB_PARAMS.DouYinRecoverChecked||global.WEB_PARAMS.DouYinRiverChecked){
            douYin()
            toastLog('抖音执行完毕')
            sleep(random(1000,3000))
        }
        // 如果勾选了快手则执行
        if(global.WEB_PARAMS.KuaiShouRecoverChecked||global.WEB_PARAMS.KuaiShouRiverChecked){
            console.log('📕执行快手');
            kuaiShou()
            toastLog('快手执行完毕');
            sleep(random(1000,3000))
        }
        // 如果勾选了小红书则执行
        if(global.WEB_PARAMS.xHongShuRecoverChecked||global.WEB_PARAMS.xHongShuRiverChecked){
            console.log('📕执行小红书');
            hongShu()
            toastLog('小红书执行完毕');
            sleep(random(1000,3000))
        }
        // 如果勾选了视频号则执行
        if(global.WEB_PARAMS.spHaoRecoverChecked||global.WEB_PARAMS.spHaoRiverChecked){
          weChat()
        }
    }
} catch (error) {
    console.log(error);
    console.log('出错啦');
    global.robotThread && global.robotThread.interrupt()
}


// 获取话术
function getText(){
    console.log(global.WEB_PARAMS.storeId);
    // 获取默认话术
    const res = http.get(`https://www.diandianyouke.cn:8081/automanager/selectMRHS/${global.WEB_PARAMS.storeId}`)
    if(res.statusCode!=200){
        console.log('获取默认话术失败');
        global.robotThread && global.robotThread.interrupt()
    }
    textMoren = res.body.json()
    console.log('默认话术');
    if(!textMoren.data)return textMoren = ''
    console.log(textMoren.data.plhs);
    textMoren = textMoren.data.plhs
    // 获取私信话术
    const res1 = http.get(`https://www.diandianyouke.cn:8081/automanager/selectPLHS/${global.WEB_PARAMS.storeId}`)
    if(res.statusCode!=200){
        console.log('获取私信话术失败');
        global.robotThread && global.robotThread.interrupt()
    }
    textSX = res1.body.json()
    console.log('私聊话术');
    console.log(textSX.data);
    textSX = textSX.data
    // 获取评论话术数组
    const res2 = http.get(`https://www.diandianyouke.cn:8081/automanager/selectAllZDH/${global.WEB_PARAMS.storeId}`)
    if(res.statusCode!=200){
        console.log('获取评论话术失败');
        global.robotThread && global.robotThread.interrupt()
    }
    textRList = res2.body.json()
    console.log('评论话术');
    console.log(textRList.data);
    textRList = textRList.data
}




// 微信评论回复函数
function review () {
    const rev = className("androidx.appcompat.app.a").desc("评论").findOne()
    rev.click()
    sleep(6000)
    requestScreenCapture(true)
    let hhjs = ''
    let nextText = ''
    let nextName = ''
    let nextText1 = ''
    let nextName1 = ''
    let isFind = false
    while(true){
        sleep(2000)
        hhjs = idEndsWith("hhj").find()
        console.log('hhjs'+hhjs.length);
        // 筛选掉 点赞 和 关注 的hhj
        hhjs = hhjs.filter(e=>{
  
            let index = ''
            if(e.child(1)){
                index = e.child(1).childCount()-1
            }
            return e.child(1)&&e.child(1).childCount()>=3&&e.child(1).child(index).child(0)&&e.child(1).child(index).child(0).childCount()>0&&e.child(1).child(index).child(0).child(1)&&(e.child(1).child(index).child(0).child(1).text() == '回复')
        })
        console.log(hhjs.length);
        hhjs.forEach(e=>console.log(e.child(1).child(e.child(1).childCount()-2).text()))
        // nextText = hhjs[0].child(1).child(hhjs[0].child(1).childCount()-2).text()||hhjs[0].child(1).child(1).text()
        // nextName = hhjs[0].child(1).child(0).child(0).child(0).text()
        console.log(nextText,nextName);
        sleep(2000)
  
        hhjs.forEach((e,i)=>{
            
            
        })
        for(let i = 0;i<hhjs.length;i++){
            console.log(hhjs[i].bounds().bottom , hhjs[i].bounds().top);
            if(hhjs[i].bounds().bottom - hhjs[i].bounds().top<100){
                toast('坐标错误')
            }else{
                if(i==hhjs.length-1)return
                // 区域找色
                // 截取当前屏幕 找色
                const findC = findColors(hhjs[i])
                if(findC=='123456'){
                    console.log(123456);
                    toast('没有新消息')
                    isFind = true
                    break;
                };
                sleep(2000)
            }
        }
  
        if(isFind){
            console.log('isFind是true');
            break;
        };
        // 滑动
        if(hhjs.length>3){
            swipe(hhjs[0].bounds().centerX(),hhjs[hhjs.length-2].bounds().centerY(),hhjs[0].bounds().centerX(),hhjs[0].bounds().bottom,2000)
        }else{
            toast('没有了')
            findColors(hhjs[hhjs.length-1])
            break;
        }
        sleep(1000)
        hhjs = idEndsWith("hhj").find()
        console.log(hhjs.length);
        // 筛选掉 点赞 和 关注 的hhj
        hhjs = hhjs.filter(e=>{
            const index = e.child(1).childCount()-1
            return e.child(1)&&e.child(1).childCount()>=3&&e.child(1).child(index).child(0)&&e.child(1).child(index).child(0).childCount()>0&&e.child(1).child(index).child(0).child(1)&&(e.child(1).child(index).child(0).child(1).text() == '回复')
        })
        console.log(hhjs.length);
        // nextText1 = hhjs[0].child(1).child(hhjs[0].child(1).childCount()-2).text()||hhjs[0].child(1).child(1).text()
        // nextName1 = hhjs[0].child(1).child(0).child(0).child(0).text()
        // 到底了 结束循环
        if(id('bdv').findOne(2000)&&id('m3v').findOne(2000)&&id('i0a').findOne(2000)){
            console.log('到底了');
            toast('到底了')
            findColors(hhjs[hhjs.length-1])
            break;
        }
    }
  
  }
    
  // 微信消息回复函数
  function message () {
    //回复点赞（私信+感谢）
    const nuw = id("nuw").className("android.widget.TextView").text("点赞").findOne(6000)
    click(nuw.bounds().centerX(),nuw.bounds().centerY())
    sleep(6000)
    let xie
    const xieList = id("o5s").text("谢谢").find();
    const filteredXieList = xieList.filter((e) => {
        return e.parent().parent().child(1).text() !== '关注了你';
    });
    filteredXieList.length?xie = filteredXieList[0]:xie = null
    console.log(xie);
    if(xie){
        toast('点赞成功')
        click(xie.bounds().centerX(),xie.bounds().centerY())
        sleep(3000)
  
        // 找到这个点赞的头像并点击
        console.log(xie.parent().parent().parent().child(0));
        const img = xie.parent().parent().parent().child(0)
        if(img){
            toast('点赞人头像')
            click(img.bounds().centerX(),img.bounds().centerY())
            sleep(3000)
            id("mlu").findOne(6000).click()
            sleep(3000)
            // 发送私信
            let input = id("bkk").className("android.widget.FrameLayout").findOne()
            if(input){
                input.child(0).setText('谢谢您的点赞')
                console.log("输入文字");
                sleep(3000)
                id("bql").findOne().click()
                console.log('发送');
                sleep(3000)
                back()
                sleep(5000)
                id("g5e").findOne(6000).click()
                sleep(3000)
                message()
            }
        }
    }else{
        toast('没有点赞')
    }
  
  
  }
  
  
  //微信已关注私信回复函数
  function six () {
    var target = id("o_4").findOne(1000)
        if(target){
            console.log('找到了新消息');
            click(target.bounds().centerX(),target.bounds().centerY())
            sleep(10000)
            let newMsg = id("bn1").find()
            console.log(newMsg.length);
            let text
            if(newMsg[newMsg.length-1].child(0).text()){
               text = newMsg[newMsg.length-1].child(1).child(1).child(0).child(0).text()
            }else{
                text = newMsg[newMsg.length-1].child(0).child(1).child(0).child(0).text()
            }
            console.log('新消息'+text);
            sleep(3000)
            let res = http.get("http://api.qingyunke.com/api.php?key=free&appid=0&msg=" + text);
                    if (res.statusCode != 200) {
                        log("请求失败: " + res.statusCode + " " + res.statusMessage);
                    } else {
                        let r_msg = res.body.json();
                      let input = id("bkk").className("android.widget.FrameLayout").findOne()
                        if(input){
                            input.child(0).setText(textSX[random(0,textSX.length-1)].plhs)
                            console.log("输入文字");
                            sleep(3000)
                            id("bql").findOne().click()
                            console.log('发送');
                            sleep(3000)
                            back()
                            sleep(5000)
                            six()
                        }
          }
        }else{
            console.log('没找到');
            // let back = id("actionbar_up_indicator").findOne()
            // click(back.bounds().centerX(),back.bounds().centerY())
            back()
        }
  }
  
  
  //微信打招呼私信回复函数
  function greet () {
    const gre = id("o_5").findOne(1000)
    if(gre){
        //进入打招呼
        click(gre.bounds().centerX(),gre.bounds().centerY())
        const o4 = id("o_4").findOne(3000)
        if(o4){
            click(o4.bounds().centerX(),o4.bounds().centerY())
            sleep(2000)
            let text = id("bkl").findOne().text()
  
             //请求获取发送信息
             let res = http.get("http://api.qingyunke.com/api.php?key=free&appid=0&msg=" + text);
             if (res.statusCode != 200) {
                 log("请求失败: " + res.statusCode + " " + res.statusMessage);
                 last_msg = "初始化";
             } else {
                 let r_msg = res.body.json();
                 let input = id("bkk").className("android.widget.FrameLayout").findOne()
                 if(input){
                     input.child(0).setText(textSX[random(0,textSX.length-1)].plhs)
                     console.log("输入文字");
                     sleep(3000)
                     id("bql").findOne().click()
                     console.log('发送');
                     sleep(3000)
                     back()
                     sleep(3000)
                     o4Msg()
                 }
             }
        }else{
            console.log('没有打招呼了');
            let back = id("actionbar_up_indicator").findOne()
            click(back.bounds().centerX(),back.bounds().centerY())
            sleep(2000)
        }
    }else{
        console.log('没有打招呼');
        // let back = id("actionbar_up_indicator").findOne()
        // click(back.bounds().centerX(),back.bounds().centerY())
    }
  }
  
  //判断消息页面有没有消息
  function o4Msg () {
    const o4 = id("o_4").findOne(6000)
    if(o4){
        click(o4.bounds().centerX(),o4.bounds().centerY())
        sleep(3000)
        let text = id("bkl").findOne().text()
        let input = id("bkk").className("android.widget.FrameLayout").findOne()
        if(input){
            input.child(0).setText(textSX[random(0,textSX.length-1)].plhs)
            console.log("输入文字");
            sleep(2000)
            id("bql").findOne().click()
            console.log('发送');
            sleep(2000)
            back()
            sleep(2000)
        }
    }else{
        console.log('没有打招呼了');
        // let back = id("actionbar_up_indicator").findOne()
        // click(back.bounds().centerX(),back.bounds().centerY())
        sleep(1000)
    }
  }
  
  // 强制更新节点函数 如果页面控件可见找不到可以启用布局分析再关闭
  function refresh () {
    sleep(1000)
    app.sendBroadcast("inspect_layout_bounds");
    sleep(3000);
    back();
    sleep(1000);
  }
  
  function findColors (e) {
    requestScreenCapture(true)
    const img = captureScreen()
    images.save(img,"/sdcard/screenshot.png")
    const less = img.getWidth() / e.bounds().width()
    const vh = img.getHeight() / device.height
    console.log('top'+Math.ceil((e.bounds().top)*vh))
    console.log('height'+Math.ceil((e.bounds().height())*vh))
    console.log('图片高度'+img.getHeight());
    if(Math.ceil((e.bounds().top)*vh)+Math.ceil((e.bounds().height())*vh)>img.getHeight())return
    const red = findColor(img, "#FA5151",{
        region:[e.bounds().left,Math.ceil((e.bounds().top)*vh),Math.ceil((e.bounds().width())*less),Math.ceil((e.bounds().height())*vh)],
        threshold:10
    });
    console.log(red);
    if(red){
        console.log('找到',e.child(1).child(e.child(1).childCount()-2).text());
        return '123456'
    }else{
        console.log('没找到',e.child(1).child(e.child(1).childCount()-2).text());
        // 点击爱心
        const ix = e.child(1).child(e.child(1).childCount()-1).child(1)
        if(ix){
            click(ix.bounds().centerX(),ix.bounds().centerY())
            sleep(2000)
            // 没有默认回复 不回复
            if(getReply(e.child(1).child(e.child(1).childCount()-2).text())){
                // 点击回复
                const rec =  e.child(1).child(e.child(1).childCount()-1).child(0)
                click(rec.bounds().centerX(),rec.bounds().centerY())
                sleep(2000)

                // 输入文字
                sleep(1000);
                const ipt = id("c6v").findOne(6000)
                if(ipt){
                    toast('输入文字')
                    ipt.setText(getReply(e.child(1).child(e.child(1).childCount()-2).text()))
                }else{
                    toast('没找到输入框')
                    global.robotThread && global.robotThread.interrupt()
                    toast('停止')
                }
                sleep(2000)
                // 点击回复

                const lz3 = ipt.parent().parent().child(3)
                if(lz3){
                    toast('点击回复')
                    console.log(lz3.bounds().centerX(),lz3.bounds().centerY())
                    click(lz3.bounds().centerX(), lz3.bounds().centerY());
                }else{
                    toast('没找到回复按钮')
                    global.robotThread && global.robotThread.interrupt()
                    toast('停止')
                }
                sleep(2000)
            }
        
        }
    }
  }
  
  
  
    
  
  
  
  
  function random(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
  }
  
  // 小红书消息回复函数
  function msg(){
    const red = className("android.widget.TextView").depth("17").drawingOrder("4").findOne(2000)
    if(red){
        toast('有新消息')
        click(red.bounds().centerX(),red.bounds().centerY())
        sleep(random(1000,3000))
        const txts = className("android.widget.TextView").depth("14").drawingOrder("1").find()
        txts.forEach(e=>{
            console.log(e.text());
        })
        if(!txts.length){
            toast('没有新消息')
            back()
            return
        }
        // 新消息
        const text = txts[txts.length-1].text()
          let input = className("android.widget.EditText").depth("10").drawingOrder("1").findOne(6000)
            if(input){
                input.setText(textSX[random(0,textSX.length-1)].plhs)
                sleep(random(1000,3000))
                className("android.widget.TextView").text("发送").depth("10").drawingOrder("3").findOne().click()
                toast('发送');
                sleep(random(1000,3000))
                back()
                sleep(random(1000,3000))
            }
    }else{
        toastLog('没有新消息')
    }
    
  }
  
  // 小红书新增关注
  function follow(){
    const flws = className("android.widget.TextView").depth("18").drawingOrder("2").find()
    const flw = flws.filter(e=>e.parent().child(2).text() == "新增关注")
    if(flw.length){
        flw[0].parent().click()
        sleep(random(1000,3000))
        flow()
    }else{
        toast('没有新关注')
    }
  }
  
  
  // 小红书回复关注函数
  function flow(){
        // var storage = storages.create('关注已回复')
        let newFs = className("android.widget.TextView").depth("10").drawingOrder("2").find()
        newFs = newFs.filter(e=>e.text() == '回关' || e.text() == '回粉')
        newFs.forEach(e=>{
            console.log(e.text());
        })
        console.log('关注长度' + newFs.length);
        if(newFs.length == 0){
            toast('没有新关注')
            back()
            return
        }
        newFs.forEach(e=>{
            // if(!storage.get(e.parent().child(1).child(0).child(0).text())){
            //     storage.put(e.parent().child(1).child(0).child(0).text(),e.parent().child(1).child(0).child(0).text())
            //     console.log(storage.get(e.parent().child(1).child(0).child(0).text()));
                click(e.parent().bounds().centerX(),e.parent().bounds().centerY())
                sleep(3000)
                className("android.widget.ImageView").depth("16").desc("发消息").drawingOrder("5").findOne(6000).click()
                sleep(3000)
                // 新消息
                let input = className("android.widget.EditText").depth("10").drawingOrder("1").findOne(6000)
                    if(input){
                        input.setText(textSX[random(0,textSX.length-1)].plhs)
                        sleep(random(1000,3000))
                        className("android.widget.TextView").text("发送").depth("10").drawingOrder("3").findOne().click()
                        console.log('发送');
                        sleep(random(1000,3000))
                        back()
                        sleep(random(1000,3000))
                        back()
                        flow()
                    }
            // }else{
            //     toast('没有新关注')
            //     back()
            // }
        })
  }
  
  
  // 小红书评论
  function review1 () {
    const revs = className("android.widget.TextView").depth("18").drawingOrder("2").find()
    const rev = revs.filter(e=>e.parent().child(2).text() == "评论和@")
    if(rev.length){
        rev[0].parent().click()
        while(true){
            sleep(random(500,1000))
            let item = className("android.widget.LinearLayout").depth("10").drawingOrder("4").untilFind()
            console.log(item.length);
            item.forEach((e,i)=>{
                console.log('index' + i);
                if(i == item.length-1) return
                if(e.child(1).child(0).text() == "评论了你的笔记"){
                    if(e.parent().bounds().left<0||e.parent().bounds().top<0||e.parent().bounds().width()<0||e.parent().bounds().height()<0){
                        console.log('坐标错误');
                    }else{
                        findColors1(e.parent())
                        sleep(1000)
                    }
                }
  
            })
            if(item.length>1){
            // 滑动
            swipe(
                device.width / 2,
                device.height * 0.8,
                device.width / 2,
                device.height * 0.2,
                1000
              );
            sleep(1000)
            }
            const end = className("android.widget.TextView").text("- THE END -").findOne(6000)
            const end2 = className("android.widget.TextView").text("查看更多历史消息").findOne(6000)
            if(end||end2||item.length==1){
                console.log('到底了');
                toast('到底了')
                findColors1(item[item.length-1].parent())
                sleep(3000)
                back()
                break;
            }else{
                console.log('没有到底');
            }
                }
    }else{
        toast('没有评论')
    }
    }
  
  
  // 小红书找色方法
  function findColors1 (e) {
    requestScreenCapture(true)
    const img = captureScreen()
    images.save(img,"/sdcard/screenshot.png")
    const less = img.getWidth() / e.bounds().width()
    const vh = img.getHeight() / device.height
    console.log(e.bounds().left,Math.ceil((e.bounds().top)*vh),Math.ceil((e.bounds().width())*less),Math.ceil((e.bounds().height())*vh));
    const red = findColor(img, "#f82a50",{
        region:[e.bounds().left,Math.ceil((e.bounds().top)*vh),Math.ceil((e.bounds().width())*less),Math.ceil((e.bounds().height())*vh)],
        threshold:10
    });
    console.log(red);
    if(red){
        console.log('找到',e.child(1).child(2).text());
    }else{
        console.log('没找到',e.child(1).child(2).text());
        // 点击爱心
        const ix = e.child(3).child(0).child(0)
        const text = e.child(1).child(2).text()
        click(ix.bounds().centerX(),ix.bounds().centerY())
        sleep(1000)
        if(getReply(text)){
            // 点击回复
            e.child(3).child(0).child(1).child(0).click()
            sleep(1000)
            const ipt = className("android.widget.EditText").depth("8").drawingOrder("3").findOne(6000)
            if(ipt){
                toast('输入文字')
                ipt.setText(getReply(text))
            }else{
                toast('没找到输入框')
            }
            sleep(3000)
            // 点击回复
            className("android.widget.TextView").depth("8").drawingOrder("4").text("发送").findOne().click()
            sleep(3000)
        }
    }
  }
  
  // 小红书截流
  function XHSRiver () {
      className("android.view.ViewGroup").depth("10").desc("首页").drawingOrder("2").findOne(6000).click()
      sleep(random(1000,3000))
      className("android.widget.Button").depth("14").desc("搜索").drawingOrder("6").findOne(3000).click()
      sleep(random(1000,3000))
      const search = className("android.widget.EditText").depth("9").drawingOrder("1").findOne(3000)
      if(search){
          search.setText('556451136')
          className("android.widget.Button").depth("8").drawingOrder("3").text("搜索").click()
          sleep(random(1000,3000))
          const user = className("android.widget.TextView").depth("14").drawingOrder("2").text("用户").findOne(3000)
          click(user.bounds().centerX(), user.bounds().centerY())
          className("android.widget.RelativeLayout").depth("10").drawingOrder("2").findOne(3000).click()
          const none = className("android.widget.TextView").depth("19").drawingOrder("4").text("TA还没有发布笔记哦~").findOne(1000)
          if(none){
              toast('TA还没有发布笔记哦~')
              back()
              sleep(random(500,1000))
              back()
          }else{
              className("android.widget.FrameLayout").depth("18").drawingOrder("1").find().forEach(e=>{
                  e.click()
                  if(className("android.widget.Button").desc("评论 0").depth("11").findOne(1000)){
                      toast('当前作品没有评论')
                      back()
                  }else{
                      className("android.widget.Button").depth("11").drawingOrder("4").findOne(1000).click()
                      
                  }
              })
              
          }
      }
  }
  
  
  /**
   * 判断给定时间字符串是否在三天内
   *
   * @param timeStr 时间字符串，格式为"YYYY-MM-DD HH:MM"
   * @returns 返回布尔值，若在三天内返回true，否则返回false
   */
  function isTimeWithinThreeDays(timeStr) {
      console.log(timeStr);
      // 当前时间
      const currentTime = new Date();
      const inputTime = new Date(timeStr.replace(' ', 'T') + ':00')
    
      // 如果解析失败，则返回false
      if (isNaN(inputTime.getTime())) {
        console.error("无效的时间格式");
        return false;
      }
    
      // 计算当前时间与目标时间之间的时间差（毫秒）
      const timeDifference = currentTime - inputTime;
    
      // 三天的时间量（毫秒）
      const threeDays = 3 * 24 * 60 * 60 * 1000;
    
      // 检查时间差是否在三天内
      if (timeDifference < threeDays) {
        return true; // 在三天内
      } else {
        return false; // 不在三天内
      }
    }


    // 获取回复话术
    function getReply (t) {
        for (let i = 0; i < textRList.length; i++) {
            const text = textRList[i].gjz.split(',')
            if (text.find(e => t.includes(e))) {
                // 当 find 找到一个匹配项时，它会立即返回 true，此时我们返回 plhs
                return textRList[i].plhs;
            }
        }
        return textMoren
    }
  
  
  // 抖音回复消息
    function findMsg (){
      let msg = className("android.widget.TextView").depth("22").drawingOrder("2").find()
      msg = msg.filter(e=>e.bounds().width()<100&&e.bounds().width()>0)
      if(msg.length){
          // 有新消息
          toastLog('有新消息');
          click(msg[0].bounds().centerX(),msg[0].bounds().centerY())
          const text = className("android.widget.TextView").depth("17").drawingOrder("2").findOne(2000).text()
          console.log('新消息'+ text);
          const input = className("android.widget.EditText").text("发送消息").findOne(2000)
          if(!input){
            back()
          }else{
            input.setText(textSX[random(0,textSX.length-1)].plhs)
            sleep(random(1000,3000))
            className("android.widget.ImageView").desc("发送").findOne(2000).click()
            back()
          }
          findMsg()
      }else{
          const not = className("android.widget.TextView").depth("20").drawingOrder("2").text("暂时没有更多了").findOne(1000)
          if(not){
              // 没有新消息
              toastLog('没有新消息');
          }else{
              const moShengRen2 = className("android.widget.ImageView").depth("22").drawingOrder("1").findOne(1000)
              if(moShengRen2&&moShengRen2.bounds().width()<50&&moShengRen2.bounds().width()>0&&moShengRen2.parent().parent().parent().child(1).child(0).text()=="陌生人消息"){
                  toast('有陌生人消息')
                  click(moShengRen.bounds().centerX(), moShengRen.bounds().centerY())
                  sleep(random(1000,3000))
                  moShengRen()
              }
              swipe(
                device.width / 2,
                device.height * 0.9,
                device.width / 2,
                device.height * 0.1,
                1000
            )
              findMsg()
          }
      }
  }
  
  // 抖音回复评论
  function reviewDY(){
      let reviewRed = id("red_tips_count_view").className("android.widget.TextView").depth("22").drawingOrder("1").find()
      reviewRed = reviewRed.filter(e=>e.parent().parent().child(1).child(0).text() == '互动消息')
      if(!reviewRed.length){
          return toastLog('没有评论')
      }
      click(reviewRed[0].bounds().centerX(), reviewRed[0].bounds().centerY())
      sleep(random(1000,3000))
      const topAll = className("android.widget.TextView").depth("9").drawingOrder("2").text("全部消息").findOne(2000)
      click(topAll.bounds().centerX(), topAll.bounds().centerY())
      className("android.view.ViewGroup").desc('收到的评论').findOne(2000).click()
      sleep(random(1000,3000))
      whileRev()
  }
  
  function whileRev(){
      const zansDY = className("android.widget.TextView").desc('赞,按钮').find()
      if(!zansDY.length){
          toastLog('DY没有新评论')
          back()
          return
      }
      zansDY.forEach(e=>{
          if(e.text()=='赞'){
              e.click()
              if(getReply(e.parent().child(3).child(0).text())){
                className('android.widget.TextView').text('回复评论').click()
                console.log(e.parent().child(3).child(0).text());
                sleep(random(1000,3000))
                className("android.widget.EditText").depth("11").drawingOrder("6").findOne(2000).setText(getReply(e.parent().child(3).child(0).text()))
                className("android.widget.TextView").text('发送').findOne(2000).parent().click()
              }
          }
      })
      swipe(device.width/2, device.height*0.85, device.width/2, device.height*0.15,500)
      whileRev()
  }
  
  // 抖音陌生人回复
  function moShengRen() {
      const moSRxx = className("android.widget.TextView").depth("12").drawingOrder("2").findOne(2000)
          if(moSRxx){
              click(moSRxx.bounds().centerX(), moSRxx.bounds().centerY())
              const jixu = className("android.widget.TextView").depth("12").drawingOrder("1").text("要继续与").findOne(2000)
              if(jixu){
                  className("android.widget.Button").depth("12").drawingOrder("3").text("确认").findOne(2000).click()
                  const jixuInput = className("android.widget.EditText").depth("14").text("发送消息").findOne(2000)
                  jixuInput.setText(textSX[random(0,textSX.length-1)].plhs)
                  sleep(random(500,2000))
                  className("android.widget.ImageView").desc("发送").depth("14").findOne(2000).click()
                  back()
                  moShengRen()
              }else{
                  const jixuInput1 = className("android.widget.EditText").depth("14").text("发送消息").findOne(2000)
                  if(jixuInput1){
                      jixuInput1.setText(textSX[random(0,textSX.length-1)].plhs)
                      sleep(random(500,2000))
                      className("android.widget.ImageView").desc("发送").depth("14").findOne(2000).click()
                      back()
                      moShengRen()
                  }else{
                      toast('没有输入框')
                      back()
                  }
              }
          }else{
              console.log('没找到陌生人消息');
              swipe(device.width/2, device.height/2 + 250, device.width/2, device.height/2 - 250, random(500,2000))
              const wu = className("android.widget.TextView").text("暂时没有更多了").depth("8").drawingOrder("2").findOne(2000)
              if(wu){
                  toast('没有陌生人消息')
                  back()
              }else{
                  console.log('陌生人消息');
                  moShengRen()
              }
          }
  }
  
  // 快手查找新消息
  function findNewMsgKS() {
    sleep(random(1000,3000))
    let redXxKS = className("android.widget.TextView").depth("20").drawingOrder("1").find()
    redXxKS = redXxKS.filter(e=>e.bounds().width()>10 && /^\d+$/.test(e.text()))
      if(!redXxKS.length){
          // 没找到新消息
          const interested = className("android.widget.TextView").depth("17").text("你可能感兴趣的人").findOne(2000)
          const bottomKS = className("android.widget.TextView").depth("18").text('暂时没有更多了').findOne(2000)
          if(interested||bottomKS){
              toastLog('没有新消息')
              // back()
          }else{
              swipe(
                  device.width / 2,
                  device.height * 0.8,
                  device.width / 2,
                  device.height * 0.2,
                  1000
                );
                findNewMsgKS()
          }
          return
      }else{
          click(redXxKS[0].bounds().centerX(),redXxKS[0].bounds().centerY())
          sleep(random(1000,3000))
          // 回复
          const inputKS = className("android.widget.EditText").depth("11").drawingOrder("2").text("输入消息").findOne(2000)
          if(!inputKS){
              console.log('没找到输入框');
              const moshengKS = className("android.widget.FrameLayout").depth("12").drawingOrder("18").findOne(2000)
              click(moshengKS.bounds().centerX(), moshengKS.bounds().centerY())
              const inputKS2 = className("android.widget.EditText").depth("11").drawingOrder("2").text("输入消息").findOne(2000)
              toastLog('找到陌生人输入框')
              inputKS2.setText(textSX[random(0,textSX.length-1)].plhs)
              className("android.widget.ImageView").depth("12").drawingOrder("2").findOne(2000).click()
              sleep(random(1000,3000))
              back()
              sleep(random(1000,2000))
              back()
          }else{
              toastLog('找到输入框')
              inputKS.setText(textSX[random(0,textSX.length-1)].plhs)
              className("android.widget.ImageView").depth("12").drawingOrder("2").findOne(2000).click()
              sleep(random(2000,3000))
              back()
              sleep(random(2000,3000))
              findNewMsgKS()
          }
      }
      
  }
  
  
  // 快手评论回复
  function commentKS(){
    sleep(random(1000,3000))
      let redComKS = className("android.widget.TextView").depth("18").drawingOrder("3").find()
      redComKS = redComKS.filter(e=>e.parent().parent().child(1).text()=='互动消息')
      console.log(redComKS.length);
      if(!redComKS.length){
          // 没找到新消息
          toastLog('没有评论')
          return
      }
      console.log(redComKS[0].bounds().centerX(),redComKS[0].bounds().centerY());
      click(redComKS[0].bounds().centerX(),redComKS[0].bounds().centerY())
      sleep(random(3000,5000))
      className("android.view.ViewGroup").depth("14").drawingOrder("3").findOne(2000).click()
      sleep(random(2000,5000))
      reviewKS()
  }
  
  
  // 快手回复评论
  function reviewKS(){
      sleep(3000)
      let unreadCom = className("android.view.ViewGroup").depth("22").drawingOrder("1").find()
      unreadCom = unreadCom.filter(e=>e.bounds().width()>0&&e.bounds().width()<100)
      console.log(unreadCom.length);
      if(!unreadCom.length){
          toastLog('KS没有新评论')
          back()
          return
      }
      const textKS = unreadCom[0].parent().child(0).child(1).child(1).child(0).text()
      console.log(textKS);
      if(getReply(textKS)){
        const unreadComChildNum = unreadCom[0].parent().child(0).child(1).childCount()
        unreadCom[0].parent().child(0).child(1).child(unreadComChildNum-1).child(0).click()
        const comInputKS = className("android.widget.EditText").depth("9").drawingOrder("2").findOne(2000)
        if(!comInputKS){
            toastLog('没找到评论框')
            global.robotThread && global.robotThread.interrupt()
            toast('停止')
        }
        comInputKS.setText(getReply(textKS))
        sleep(random(1000,3000))
        className("android.widget.Button").depth("8").desc("发送").text("发送").findOne(2000).click()
        sleep(random(1000,3000))
      }
      reviewKS()
  }
  
  
  /**
   * 提取微信号
   *
   * @param str 包含微信号的字符串
   * @returns 返回匹配到的微信号，如果未匹配到则返回null
   */
  function extractWeChatID(str) {
      const weChatIDRegex = /[a-zA-Z_][a-zA-Z0-9_-]{5,19}/;
      const match = str.match(weChatIDRegex);
      return match ? match[0] : null;
  }